# ----歌手大赛----
# 为丰富校园文化生活，学校拟组织一场歌手大赛，从参赛选手中选拔出10名相对突出的学生，授予“校园十大歌手”称号。
# 比赛设有评委组，每名选手演唱完毕后会由评委组的10名评委打分。
# 为保证比赛公平公正、防止作弊和恶意打分，计算得分（即打分的平均分）时会先去掉最高分和最低分。
# 本案例要求编写程序，实现根据需求计算每位选手得分的功能。
# score_list = []
# for i in range(1, 11):
#     pw = int(input(f'请输入第{i}个评分：'))
#     score_list.append(pw)
# score_list.sort()
# score_list.pop(0)
# score_list.pop(-1)
# print(score_list)
# print(sum(score_list) / round(len(score_list)))

'''
----登录函数----
编写一个用户登录逻辑，用户名密码提前设置（列表嵌套字典存储），返回用户登录成功或者失败的结果。
'''
# user1 = {'id': '1001', 'username': 'zhangsan', 'password': '123'}
# user2 = {'id': '1002', 'username': 'lisi', 'password': '123'}
# user3 = {'id': '1003', 'username': 'wangwu', 'password': '123'}
# user_list = [user1, user2, user3]
#
# name= input('请输入您的姓名：')
# pwd= input('请输入您的密码：')
# for user in user_list:
#     if name == user['username'] and pwd ==user['password']:
#         print('登录成功')
#         break

# ----超市收银机----
# 为一家超市开发一个收银系统(以3-5种商品为例):
# 使用变量保存：商品编号 商品价格 商品名字
#   1.提示用户输入商品编号和数量,然后显示总价多少钱。
#   2.提示用户输入付款金额,然后显示找零金额。
# 练习目标：
#   1.学会使用变量
#   2.学会使用条件控制程序逻辑

# commodity1 = {'id': '1001', 'price': 10, 'name': '苹果'}
# commodity2 = {'id': '1002', 'price': 15, 'name': '香蕉'}
# commodity3 = {'id': '1003', 'price': 20, 'name': '橘子'}
# commodity4 = {'id': '1004', 'price': 25, 'name': '火龙果'}
# commodity5 = {'id': '1005', 'price': 30, 'name': '草莓'}
# commodity_list = [commodity1, commodity2, commodity3, commodity4, commodity5]
#
# price = 0
# id = input('请输入商品编号：')
# for i in commodity_list:
#     if id == i['id']:
#         price = i['price']
#         name = i['name']
#         break
# if price != 0:
#     quantity = int(input('请输入数量：'))
#     money = quantity * price
#     qqq = float(input('你付了多少：'))
#     if qqq > money:
#         print(f'找您{qqq - money}元')
#     else:
#         print('您付的钱不够')
# else:
#     print('商品不存在')
# #

'''
水仙花：
九九乘法表：
冒泡排序：
'''
number = [10, 6, 11, 68, 54, 3]
for i in range(len(number) - 1):  # 外层循环表示需要进行几轮排序
    for j in range(len(number) - 1 - i):  # 内层循环表示一轮需要进行几次比较
        if number[j] > number[j + 1]:
            number[j], number[j + 1] = number[j + 1], number[j]
print(number)

# # ----银行ATM----
# # 银行ATM存款取款：
# # 1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式)；
# # 2.提示用户输入银行卡和密码，遍历每张卡的信息验证是否成功；
# 3.如果用户输入正确---提示让用户选择取款.存款还是退出,并提示余额多少.  输入错误---重新输入卡号密码；
#   选择取款---提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额；
#   选择存款---输入存款额度,余额加上相应额度,并提示余额多少；
#   选择退出---重新登录；
# 4.连续3次输入错误账号密码,提示银行卡已被锁定，程序结束。
card1 = {'id': '1001', 'password': '123', 'money': 666}
card2 = {'id': '1002', 'password': '123', 'money': 888}
card3 = {'id': '1003', 'password': '123', 'money': 999}
card_list = [card1, card2, card3]

zzzz = 0
id = input('请输入您的银行卡卡号：')
while zzzz < 3:
    pwd = input('请输入您的银行卡密码：')
    for card in card_list:
        if id == card['id']:
            if pwd == card['password']:
                balance = card['money']
                print(f'查询成功，您的银行卡余额是{balance}')
                option = int(input('请选择:\n1.取款\n2.存款\n3.退出'))  # 让用户选择取款.存款还是退出,并提示余额多少
                if option == 1:  # 提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额；
                    qked = float(input('请输入您的取款额度：'))
                    if qked > balance:
                        print('您的余额已不足请及时充值')
                    else:
                        aaaa = balance - qked
                        print(f'取款成功，请拿走您的现金,目前的余额是：{aaaa}')
                elif option == 2:  # 输入存款额度,余额加上相应额度,并提示余额多少；
                    ck = float(input('请输入您的存款金额：'))
                    bbb = balance + ck
                    print(f'您现在的余额是:{bbb}')
                elif option == 3:  # 选择退出---重新登录；
                    break
                break
                # else:
                # print('请输入正确的选项')

            else:
                zzzz += 1
                print('重新输入卡号密码')
                break

            break
        else:
            print('您输入的卡号不正确')
    if zzzz == 3:
        print('银行卡已锁定')
